package teachnotes.guides.client;

import teachnotes.guides.compute.Task;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 实现 Task 接口并计算的 value
 * (定义和实现远端接口的参数, 必须实现序列化)
 */
public class Pi  implements Task<BigDecimal>, Serializable {
    // 无论是直接实现化石间接实现 Serializable 接口, 都不必声明 UID,以确保版本之间的序列化兼容.
    private static final long serialVersionUID = 6563293761150441280L;

    private final int digits;
    public Pi(int digits) {
        this.digits = digits;
    }

    @Override
    public BigDecimal execute() {
        // 简化任务实现
        BigDecimal pi = new BigDecimal(digits);
        return pi.setScale(digits,
                BigDecimal.ROUND_HALF_UP);

    }
}
